<?php
	require('config.php');
	require('weixin/lib/WxPay.Config.php');
	file_put_contents("tsxx_WxPay.txt", "\r\n--------------------------\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n收到微信回调充值通知:".date('Y-m-d H:i:s')."\r\n", FILE_APPEND);
	//$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
	$msg = array();
	$postStr = file_get_contents('php://input');
	$msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
	file_put_contents("tsxx_WxPay.txt", "\r\n返回全部信息：".json_encode($msg)."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n返回格式    ：".$msg."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n返回数据条数：".count($msg)."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\nappid       ：".$msg['appid']."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n支付结果    ：".$msg['result_code']."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n商户号      ：".$msg['mch_id']."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n订单信息    ：".$msg['attach']."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n交易单号    ：".$msg['transaction_id']."\r\n", FILE_APPEND);
	// file_put_contents("tsxx_WxPay.txt", "\r\n".var_export($postObj,true)."\r\n", FILE_APPEND);
	file_put_contents("tsxx_WxPay.txt", "\r\n--------------------------\r\n", FILE_APPEND);
	if($msg['result_code']=='SUCCESS')
	{
		// $user_id=$msg['attach'];
  //       $money=$msg['total_fee']/100;
  //       $type='weixin';
  //       $orderNo=$msg['out_trade_no'];
  //       $time=date('Y-m-d H:i:s');
  //       $time2=time();
		$user_id=$msg['attach'];
        $orderNo=$msg['out_trade_no'];
        $orderNo=explode(WxPayConfig::MCHID,$orderNo); 
        $orderNo=$orderNo[1];
        $pay_way=2;

        // $user_id=54;
        // $json='[{orderId:107}]';
        // $pay_way='1';
		$sql="select * from `".$oto."_users` where `userId`='".$user_id."' LIMIT 1";
		$result=$db->query($sql);
		while($row=$result->fetch_assoc()){
			$user_info[]=$row;//将取得的所有数据赋值给person_info数组
		}
		$sql="SELECT orderId,isPay FROM ".$oto."_orders where orderunique='{$orderNo}'";
		$result=$db->query($sql);
		while($row=$result->fetch_assoc()){
			$json[]=$row;//将取得的所有数据赋值给person_info数组
		}
		if(isset($json) && $json[0]['isPay']==1) die();
		$pay_money=0;
		for($i=0;$i<count($json);$i++)
		{
			$order_id=$json[$i]['orderId'];
			$sql="select * from `".$oto."_orders` where `orderId`='".$order_id."' LIMIT 1";
			$result=$db->query($sql);
			while($row=$result->fetch_assoc()){
				$order[$i]=$row;//将取得的所有数据赋值给person_info数组
			}
			$pay_money+=$order[$i]['needPay']+$order[$i]['deliverMoney'];
		}
			$time=time();
				//减少商品库存
				for($i=0;$i<count($json);$i++)
				{
					$order_id=$json[$i]['orderId'];
					$sql="select * from `".$oto."_order_goods` where `orderId`='".$order_id."'";
					$result=$db->query($sql);
					while($row=$result->fetch_assoc()){
						$lin_goods[$i][]=$row;//将取得的所有数据赋值给person_info数组
					}
					for($j=0;$j<count($lin_goods);$j++)
					{
						$goods_id=$lin_goods[$i][$j]['goodsId'];
						$goods_attr_id=$lin_goods[$i][$j]['goodsAttrId'];
						$goods_num=$lin_goods[$i][$j]['goodsNums'];
						$lin_pan=0;
						$sql="select * from `".$oto."_goods` where `goodsId`='".$goods_id."' LIMIT 1";
						$result=$db->query($sql);
						while($row=$result->fetch_assoc()){
							$lin_goods_info[$j]=$row;//将取得的所有数据赋值给person_info数组
						}
						$goodsStock=$lin_goods_info[$j]['goodsStock'];
						$hgoodsStock=$goodsStock-$goods_num;
						$hsaleCount=$lin_goods_info[$j]['saleCount']+$goods_num;
						$sql="update ".$oto."_goods set goodsStock='{$hgoodsStock}' where goodsId='{$goods_id}'";
						$result=$db->query($sql);
						if($goodsStock<$goods_num)
						{
							// $lin_pan=1;
							// $lin_max_pan=1;
						}
						else
						{
							if($goods_attr_id==null || $goods_attr_id=="")
							{

							}
							else
							{
								$goods_attr_id=explode(',',$goods_attr_id);
								for($k=0;$k<count($goods_attr_id);$k++)//减少属性库存
								{
									$attr_id=$goods_attr_id[$k];
									$sql="select * from `".$oto."_goods_attributes` where `id`='".$attr_id."' LIMIT 1";
									$result=$db->query($sql);
									while($row=$result->fetch_assoc()){
										$attr_info[$k]=$row;//将取得的所有数据赋值给person_info数组
									}
									$attrStock=$attr_info[$k]['attrStock'];
									$hattrStock=$attrStock-$goods_num;
									$sql="update ".$oto."_goods_attributes set attrStock='{$hattrStock}' where id='{$attr_id}'";
									$result=$db->query($sql);
									// if($attr_info[$k]['attrStock']<$goods_num)
									// {
									// 	$lin_pan=1;
									// 	$lin_max_pan=1;
									// }
								}
							}
						}
						// if($lin_pan==1)
						// {
						// 	$data[0]['pan']=-3;
						// 	$data[0]['msg'].=$lin_goods_info[$j]['goodsName'].'库存不足！\n\r';
						// }
					}
				}
				/****************判断库存等验证通过时修改订单状态以及减少用户余额****************/
				for($i=0;$i<count($json);$i++)
				{
					$order_id=$json[$i]['orderId'];
					$sql="update ".$oto."_orders set orderStatus='0',payType='{$pay_way}',paytime='{$time}',isPay='1' where orderId='{$order_id}'";
					$result=$db->query($sql);
					$sql="select * FROM ".$oto."_orders where orderId='{$order_id}'";
					$result=$db->query($sql);
					while($row=$result->fetch_assoc()){
						$score_order_lin[$i]=$row;//将取得的所有数据赋值给person_info数组
					}
					$order_no=$score_order_lin[$i]['orderNo'];
					$needPay_lin=$score_order_lin[$i]['needPay'];
					$user_score_lin=$user_info[0]['userScore']+$needPay_lin;
					$user_money_lin=$user_info[0]['userMoney'];
					$sql="INSERT INTO ".$oto."_score_record (`userid`,`orderNo`,`score`,`totalscore`,`time`,`IncDec`,`type`) VALUES ('$user_id','$order_no','$needPay_lin','$user_score_lin','$time','1','1')";
            		$result=$db->query($sql);
            		$msg="购买商品";
            		if($pay_way==3) $pay_way_lin=0;
            		if($pay_way==1) {$pay_way_lin=1;$msg="购买商品(支付宝支付)"}
            		if($pay_way==2) {$pay_way_lin=2;$msg="购买商品(微信支付)"}
            		$sql="INSERT INTO ".$oto."_money_record (`userid`,`orderNo`,`money`,`balance`,`time`,`IncDec`,`type`,`remark`,`payWay`) VALUES ('$user_id','$order_no','$needPay_lin','$user_money_lin','$time','0','1','$msg','$pay_way_lin')";
            		//file_put_contents("tsxx.txt", "\r\n".$sql."\r\n", FILE_APPEND);
            		$result=$db->query($sql);
				}
				$user_money=$user_info[0]['userMoney']-$pay_money;
				$user_score=$user_info[0]['userScore']+$pay_money;
				$sql="update ".$oto."_users set userScore='{$user_score}' where userId='{$user_id}'";
				$result=$db->query($sql);
				if($result)
				{
					$data[0]['pan']=1;
				}
				else
				{
					for($i=0;$i<count($json);$i++)
					{
						$order_id=$json[$i]['orderId'];
						$sql="update ".$oto."_orders set orderStatus='-2' where orderId='{$order_id}'";
						$result=$db->query($sql);
					}
					$data[0]['pan']=-2;
					$data[0]['msg']='支付异常';
				}
				/********************************/

				/************增加优惠券使用记录并减少未使用优惠券**************/
				// for($i=0;$i<count($json);$i++)
				// {
				// 	$order_id=$json[$i]['orderId'];
				// 	$sql="select * from `".$oto."_orders` where `orderId`='".$order_id."'";
				// 	$result=$db->query($sql);
				// 	while($row=$result->fetch_assoc()){
				// 		$order_youhui_info[$i]=$row;//将取得的所有数据赋值给person_info数组
				// 	}
				// 	$order_youhui_id=$order_youhui_info[$i]['couponId'];
				// 	if($order_youhui_id!=0 && $order_youhui_id!='0')
				// 	{
				// 		$order_youhui_id=$order_youhui_info[0]['couponId'];
				// 		$order_youhui_money=$order_youhui_info[0]['couponMoney'];
				// 		$sql="select * from `".$oto."_youhui_user_link` where `user_id`='{$user_id}' and youhui_id='{$order_youhui_id}' and u_is_effect='1'";
				// 		$result=$db->query($sql);
				// 		while($row=$result->fetch_assoc()){
				// 			$yhq_yz[]=$row;//将取得的所有数据赋值给person_info数组
				// 		}
				// 		if(isset($yhq_yz))
				// 		{
				// 			if($yhq_yz[0]['surplus']>1)
				// 			{
				// 				$surplus=$yhq_yz[0]['surplus']-1;
				// 				$l_shopId=$yhq_yz[0]['shop_id'];
				// 				$sql="update ".$oto."_youhui_user_link set surplus='{$surplus}' where `user_id`='{$user_id}' and youhui_id='{$order_youhui_id}' and u_is_effect='1'";
				// 				$result=$db->query($sql);
				// 				$sql="INSERT INTO ".$oto."_youhui_use_record (`youhui_id`,`userId`,`shopId`,`useTime`,`orderId`,`money`) VALUES ('$order_youhui_id','$user_id','$l_shopId','$time','$order_id','$order_youhui_money')";
    //         					$result=$db->query($sql);
				// 			}
				// 			else
				// 			{
				// 				$sql="DELETE FROM `".$oto."_youhui_user_link` where `user_id`='{$user_id}' and youhui_id='{$order_youhui_id}' and u_is_effect='1'";
				// 				$result=$db->query($sql);
				// 				$l_shopId=$yhq_yz[0]['shop_id'];
				// 				$sql="INSERT INTO ".$oto."_youhui_use_record (`youhui_id`,`userId`,`shopId`,`useTime`,`orderId`,`money`) VALUES ('$order_youhui_id','$user_id','$l_shopId','$time','$order_id','$order_youhui_money')";
    //         					$result=$db->query($sql);
				// 			}
				// 		}
				// 	}
					
				// }
		//echo "SUCCESS";
		//return true;
		//file_put_contents("tsxx_WxPay.txt", "\r\n------------订单支付成功--------------\r\n", FILE_APPEND);
		// response.getWriter().println("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");
		 // 告诉微信服务器，我收到信息了，不要在调用回调action了
	}
?>